package com.suyuan.service;

import com.github.pagehelper.PageInfo;
import com.suyuan.entity.*;
import com.suyuan.vo.HotProductVO;
import com.suyuan.vo.ProductVO;
import com.suyuan.vo.SourceInfo;
import com.suyuan.web.Page;

import java.util.List;

/**
 * Created by yang on 2018/3/31.
 */
public interface ProductService {

    public List<ProducetypeInfo> categoryList();

    public PageInfo findByCategory(Integer id, Page page);

    public ProductVO findById(Integer id);

    public PageInfo findAll(Page page);

    List<ProductInfo> getRecommentPro();

    List<ProPic> getProPic(Integer id);

    /**
     * 首页轮播图
     * @return
     */
    List<ProPic> getSlidePic();

    /**
     * 获取首页热门商品
     * @return
     */
    List<HotProductVO> getHotProduct();

    /**
     * 删除热门商品
     * @param id
     */
    void deleteHotProduct(Integer id);

    /**
     * 新增热门商品
     */
    void insertHotProduct(HotProduct product);

    /**
     * 溯源信息
     * @param traceCode
     * @return
     */
    SourceInfo getSourceInfo(String traceCode);

    List<ProductInfo> findAll();

    //溯源商城后台添加热门商品
    Integer addRecommProduct(Integer id);

    //溯源商城后台查找所有热门商品
    List<RecommProduct> findAllRecommProduct();
    //移除热门商品
    Integer removeRecommProduct(Integer id);
    //检查推荐商品信息是否合法
    Integer checkInfo(Integer id);

    void insert(ProductInfo product) throws Exception;

    void update(ProductInfo product);

    void delete(Integer id);

    Integer insertProductReturnId(ProductInfo product);

    PageInfo inquiry(String productName, Integer pageNumber, Integer pageSize);
}
